"""
Python中逻辑运算符（and、or、not） 的作用、基本用法、短路计算特性、返回值规则以及在实际开发中的组合应用。

Python中的逻辑运算符有三个，分别是 and， or，和 not

一、and、or、not作用 有两点

1. 对布尔值True 或 False 进行逻辑运算
2. 对非布尔型的，则进行真值测试

二、它们的基本用法是

1.对bool类型运算时，And 是指全为True 才返回True，or 是只要一个为True就返回True

2.not 是 and 或者 or的逻辑取反

三、它们的真值测试是指：

1. 在python中，有一份假值表，包含了10个数据，分别是（ False,None,'', 0, 0.0 ,0j,空列表[],空字典{},空元组(),空集合set() ）
  假值表中元素通过bool()函数转换时，全部返回False，而不是这些假值返回False。反之，在这10个假值表之外的类型的值，通过bool()函数转换
  时，则返回True

2. 对以上10个假值进行not运算时，则全部返回为True

四、逻辑运算符短路计算特性主要是指 And 和 or

1. And 是 遇到第一个逻辑假时，后面就不再计算 False and (1/0)
2. Or 是 遇到第一个为逻辑真是，后面就不再计算 True or 4

五、在返回值规则方面

1. 当参与运算的元素都是bool类型的True和False时，则是纯逻辑运算，那么 and 就是全为True才返回True ，or 就是只要一个为True就返回True

2. 当参与运算的元素包含了bool类型和非bool类型的值是,可以总结为以下规则：
    假值表[False, None, "", 0, 0.0, 0j, [], {}, (), set()]

   - 假值表中的元素和任意元素参与and运算都返回假值本身，如果都是真值，and 运算，则返回末位真值本身
   - 假值表中的元素和任意元素参与or运算，都返回这个任意元素本身；如果都是真值进行or运算，则返回首个真值本身




"""

false_value_list = [False, None, "", 0, 0.0, 0j, [], {}, (), set()]

for item in false_value_list:
    print(bool(item))

print("=" * 50)
for item in false_value_list:
    print(f"1.对假值表进行not {item}运算符操作=", not item)

print("=" * 50)
for item in false_value_list:
    print(
        f"2.假值表中的元素和任意元素参与and运算都返回假值本身{item} and 12=", item and 0
    )

print("=" * 50)
for item in false_value_list:
    print(
        f"3.假值表中的元素和任意元素参与or运算都返回这个任意元素本身{item} or 12=",
        item or 12,
    )


print(1 and 2)
print(1 or 2)
